home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / Borland Plateform / Turbo Prolog 2 / EXAMPL51.PRO < prev    next >
Encoding:
Text File  |  1986-04-25  |  3.3 KB  |  124 lines

  1.  /*                      Program 51 
  2.  
  3.     Type RUN in response to the GOAL prompt at runtime.
  4. */    
  5.                       
  6.   database
  7.   
  8.       xpositive(symbol,symbol)                      
  9.       xnegative(symbol,symbol)
  10.       
  11.   predicates
  12.   
  13.      run
  14.      animal_is(symbol)
  15.      it_is(symbol)
  16.      positive(symbol,symbol)
  17.      negative(symbol,symbol)
  18.      clear_facts
  19.      remember(symbol,symbol,symbol)
  20.      ask(symbol,symbol)
  21.      
  22.   clauses
  23.   
  24.      run:-
  25.            animal_is(X),!,
  26.            write("\nYour animal may be a(n) ",X),
  27.            nl,nl,clear_facts.
  28.            
  29.      run:-
  30.            write("\nUnable to determine what"),
  31.            write("your animal is. \n\n"),clear_facts.
  32.            
  33.      positive(X,Y) if xpositive(X,Y),!.
  34.      positive(X,Y) if not(xnegative(X,Y)) and ask(X,Y).
  35.      negative(X,Y) if xnegative(X,Y),!.
  36.      negative(X,Y) if not(xpositive(X,Y)) and ask(X,Y).
  37.      
  38.      ask(X,Y):-
  39.         write(X," it ",Y,"\n"),
  40.         readln(Reply),
  41.         remember(X,Y,Reply).
  42.         
  43.      remember(X,Y,yes):-
  44.         asserta(xpositive(X,Y)).
  45.         
  46.      remember(X,Y,no):-
  47.         asserta(xnegative(X,Y)),
  48.         fail.
  49.         
  50.      clear_facts:-
  51.                    retract(xpositive(_,_)),fail.
  52.                    
  53.      clear_facts:-
  54.                    retract(xnegative(_,_)),fail.
  55.                    
  56.      clear_facts:-
  57.                    write("\n\nPlease press the space bar to Exit"),
  58.                    readchar(_).                                      
  59.         
  60.      animal_is(cheetah) if 
  61.         it_is(mammal) and
  62.         it_is(carnivore) and
  63.         positive(has,tawny_color) and 
  64.         positive(has,black_spots).
  65.         
  66.      animal_is(tiger) if
  67.         it_is(mammal) and
  68.         it_is(carnivore) and
  69.         positive(has,tawny_color) and
  70.         positive(has,black_stripes).
  71.      
  72.      animal_is(giraffe) if
  73.         it_is(ungulate) and
  74.         positive(has,long_neck) and
  75.         positive(has,long_legs) and
  76.         positive(has,dark_spots).
  77.         
  78.      animal_is(zebra) if
  79.         it_is(ungulate) and
  80.         positive(has,black_stripes).
  81.         
  82.      animal_is(ostrich) if
  83.         it_is(bird) and
  84.         negative(does,fly) and
  85.         positive(has,long_neck) and
  86.         positive(has,long_legs) and
  87.         positive(has,black_and_white_color).
  88.         
  89.      animal_is(penguin) if 
  90.         it_is(bird) and
  91.         negative(does,fly) and
  92.         positive(does,swim) and
  93.         positive(has,black_and_white_color).
  94.         
  95.      animal_is(albatross) if
  96.         it_is(bird) and
  97.         positive(does,fly_well).
  98.         
  99.      it_is(mammal) if
  100.         positive(has,hair).
  101.      it_is(mammal) if
  102.         positive(does,give_milk).
  103.      it_is(bird) if
  104.         positive(has,feathers).
  105.      it_is(bird) if
  106.         positive(does,fly) and
  107.         positive(does,lay_eggs).
  108.         
  109.      it_is(carnivore) if
  110.         positive(does,eat_meat).
  111.      it_is(carnivore) if
  112.         positive(has,pointed_teeth) and
  113.         positive(has,claws) and
  114.         positive(has,forward_eyes).
  115.         
  116.      it_is(ungulate) if
  117.         it_is(mammal) and
  118.         positive(has,hooves).
  119.         
  120.      it_is(ungulate) if
  121.         it_is(mammal) and
  122.         positive(does,chew_cud).
  123.         
  124.